﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Sistema_Totem.Logica.Clases;
using System.Data;

namespace Sistema_Totem.Vista.Requerimientos
{
    public partial class AgregarRequerimiento : System.Web.UI.Page
    {

        List<Requerimiento> requerimiento2 = new List<Requerimiento>();
        private String buscar;
        private int idProyecto = 1;

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                //if (Session["tipo_usuario"].ToString() != "Analista" || Session["tipo_usuario"].ToString() != "Gerente de Proyecto")
                //{
                //    Response.Redirect("Login1.aspx");
                //}

                //Proyecto proy = (Proyecto)Session["objProyecto"];

                //if (proy.Nombre.ToString() != null && proy.IdProyecto != null)
                //{
                //    idProyecto = proy.IdProyecto;
                //    nomProyecto.Text = proy.Nombre;
                //    codProyecto.Text = proy.Codigos; 
                //}
            }
            catch (NullReferenceException)
            {
                Response.Redirect("~/Vista/Login/Login1.aspx");
            }
            
            if (!IsPostBack)
            {
                GridViewBuscarRequerimiento.DataSource = ListarRequerimiento();
                GridViewBuscarRequerimiento.DataBind();
                GridViewBuscarRequerimiento.Columns[0].Visible = false;
            }
        }

        protected void GridViewBuscarRequerimiento_SelectedIndexChanged(object sender, EventArgs e)
        { }

        protected void GridViewBuscarRequerimiento_PageIndexChanging(object sender, GridViewPageEventArgs e)
        { }

        protected void GridViewBuscarRequerimiento_SelectedIndexChanged1(object sender, EventArgs e)
        { }

        protected void GridViewConsultarRequerimiento_RowCommand(Object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Consultar")
            {
                int index = Convert.ToInt32(e.CommandArgument);
                GridViewRow row = GridViewBuscarRequerimiento.Rows[index];
                int idRequerimiento = Convert.ToInt32(row.Cells[0].Text);
                Response.Redirect("VerDetalle.aspx?idRequerimiento=" + idRequerimiento);
            }
        }

        protected DataTable ListarRequerimiento()
        {
            List<Requerimiento> requerimientos = new List<Requerimiento>();
            Requerimiento requerimiento = new Requerimiento();
            DataTable tabla = new DataTable();

            requerimientos = requerimiento.ListarRequerimientos(idProyecto);
            tabla.Columns.Add("Id", typeof(int));
            tabla.Columns.Add("Codigo", typeof(String));
            tabla.Columns.Add("Nombre", typeof(String));

            for (int i = 0; i < requerimientos.Count; i++)
            {
                tabla.Rows.Add(requerimientos[i].Id, "TotemReq" + requerimientos[i].Id, requerimientos[i].Nombre);
            }
            
            Session["requerimientos"] = requerimientos;
            return tabla;
        }

        public DataTable BuscarRequerimiento(List<Requerimiento> buscarRequerimiento, int caso, String buscar)
        {
            DataTable tabla = new DataTable();

            tabla.Columns.Add("Id", typeof(int));
            tabla.Columns.Add("Codigo", typeof(String));
            tabla.Columns.Add("Nombre", typeof(String));

            if (caso == 1)
            {
                foreach (Requerimiento requerimiento in buscarRequerimiento)
                {
                    if (requerimiento.Nombre == buscar)
                    {
                        tabla.Rows.Add(requerimiento.Id, "TotemReq" + requerimiento.Id, requerimiento.Nombre);
                    }
                }
            }
            else
                if (caso == 2)
                {
                    foreach (Requerimiento requerimiento in buscarRequerimiento)
                    {
                        if ("TotemReq" + requerimiento.Id == buscar)
                        {
                            tabla.Rows.Add(requerimiento.Id, "TotemReq" + requerimiento.Id, requerimiento.Nombre);
                        }
                    }
                }

            return tabla;
        }

        protected void botonBuscar_Click(object sender, EventArgs e)
        {
            switch (Convert.ToInt32(tipo.SelectedValue))
            {
                case 1:
                    requerimiento2 = new List<Requerimiento>();
                    requerimiento2 = (List<Requerimiento>)Session["requerimientos"];
                    buscar = TextBoxBuscar.Text;

                    GridViewBuscarRequerimiento.DataSource = BuscarRequerimiento(requerimiento2, 1, buscar);
                    GridViewBuscarRequerimiento.DataBind();
                    GridViewBuscarRequerimiento.Columns[0].Visible = false;
                    
                    break;

                case 2:
                    requerimiento2 = new List<Requerimiento>();
                    requerimiento2 = (List<Requerimiento>)Session["requerimientos"];
                    buscar = TextBoxBuscar.Text;

                    GridViewBuscarRequerimiento.DataSource = BuscarRequerimiento(requerimiento2, 2, buscar);
                    GridViewBuscarRequerimiento.DataBind();
                    GridViewBuscarRequerimiento.Columns[0].Visible = false;
                    
                    break;
            }
        }
    }
}